unit tansferobjascell;

{$mode objfpc}{$H+}

interface
type
TTOCell = Class;
TTOMemberTypes = (mtINTEGER,mtREAL,mtTEXT,mtBLOB,mtDateTime);
TTOValidationFunct = function (Value:String): Boolean;//Callback for validate value of cell
TTOEvent = procedure (Sender:TTOCell);

TTOCell = Class
  protected
    FName:string;
    FType:TTOMemberTypes;
    FValidationFunc :TValidationFunct;//Указатель на Функцию проверки данных ячейки
    FOnCreate:TTOEvent;
    procedure SetValidationFunct(AValidationFunc:TValidationFunct);
  Public
    property Name read FName write SetName;
    property FType read FType write SetType;
    property ValidationData:TValidationFunct read FValidationFunc write SetValidationFunct;
    property OnCreate:TTOEvent read FOnCreate write FOnCreate;

end;
{
  Загловок столбца содержит писание ячеек столбца и представление столбца
}
TTOCaptionCell = Class(TTOCell)
   protected
    FCaption:String;
    FWidth:Integer;
   public
    constructor Create(AType:TTOMemberTypes;AName:String;ACaption:String='';FWidth :Integer = 15);
    property Caption:String read FCaption;
    property Width:String read FWidth;
end;

{
 Ячейка с данными создаётся на основе описания TTOCaptionCell
}
TTODataCell = Class(TTOCell)
protected
  FValue:String;
public
  constructor Create(TTOCaptionCell);
end;

uses
  Classes, SysUtils;

implementation

end.

